package com.shujia.core

import org.apache.spark.{SparkConf, SparkContext}

object Demo8Action {
  def main(args: Array[String]): Unit = {

    /**
      * 转换算子   rdd---> rdd(rdd之间的转换)   懒执行   当遇到action算子之后才会执行
      * 操作算子  触发job执行 ，每一个action算子都会触发一个job任务
      * 如果返回一个rdd,就是转换算子
      *
      */

    val conf = new SparkConf().setAppName("app").setMaster("local")
    val sc = new SparkContext(conf)

    val rdd = sc.textFile("data/word.txt")

    val rdd2 = rdd.map(line => {
      println("=========" + line)

      line
    })

    //不会触发任务
    val p = rdd2.getNumPartitions


    rdd2.foreach(println)

    val count = rdd2.count()
    println(count)


    /**
      * 将rdd拉去到内存构建一个数组
      * 如果rdd数据量很大（10G）  会出现OOM
      *
      */
    val array = rdd2.collect()

    //将rdd数据写入到磁盘
    //rdd2.saveAsTextFile(path)

    //让程序不结束
    while (true) {

    }

  }

}
